﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DTO;
using System.Data.SqlClient;
namespace DAO
{
    public class LoaiMonAnDAO
    {
        public bool CapNhatLoaiMonAn(int id, string ten)
        {
            SqlConnection conn = DataProvider.ConnectDB();
            SqlTransaction transaction = conn.BeginTransaction();
            try
            {
                string sql = "update LOAIMONAN set Ten_Loai_Mon_An=N'" + ten + "' where Id_Loai_Mon_An='" + id + "' ";
                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.Transaction = transaction;
                cmd.ExecuteNonQuery();
                transaction.Commit();
                return true;
            }
            catch
            {
                transaction.Rollback();
                //throw new Exception("Lôi update "+error.Message);
                return false;
            }

        }
        public string LayLoaiMonAn(int id)
        {
            SqlConnection conn = DataProvider.ConnectDB();
            //
            string sql = @"select Ten_Loai_Mon_An from LOAIMONAN where Id_Loai_Mon_An=" + id;
            SqlCommand cmd = new SqlCommand(sql, conn);
            SqlDataReader reader = cmd.ExecuteReader();
            reader.Read();
            string loaimon = reader.GetString(0);
            conn.Close();
            return loaimon;
        }
        // Lấy Danh Sách Loại Món Ăn
        public List<LoaiMonAnDTO> DanhSachLoaiMenu()
        {
            // Tạo Kết Nối CSDL
            SqlConnection myCONN = DataProvider.ConnectDB();

            //Viết Câu Lệnh SQL
            string mySQL = "SELECT Id_Loai_Mon_An,Ten_Loai_Mon_An FROM LOAIMONAN ";

            // Thực hiện truy vấn
            SqlCommand cmd = new SqlCommand(mySQL, myCONN);

            // Lấy dữ liệu từ kết quả truy vấn
            SqlDataReader reader = cmd.ExecuteReader();

            // Đổ dữ liệu vào danh sách đối tượng Khu Vực
            List<LoaiMonAnDTO> listLMADTO = new List<LoaiMonAnDTO>();
            while (reader.Read())
            {
                LoaiMonAnDTO singleRecord = new LoaiMonAnDTO();
                singleRecord.Id_Loai = reader.GetInt32(0);
                singleRecord.Ten_Mon_An = reader.GetString(1);
                listLMADTO.Add(singleRecord);
            }

            // Đóng kết nối CSDL
            myCONN.Close();

            // Trả kết quả
            return listLMADTO;
        }
        // Xóa Tất Cả Dữ Liệu 
        public void XoaTatCa()
        {
            // Tạo Kết Nối CSDL
            SqlConnection myCONN = DataProvider.ConnectDB();

            //Viết Câu Lệnh SQL
            string mySQL = "DELETE FROM LOAIMONAN ";

            // Thực hiện truy vấn
            SqlCommand cmd = new SqlCommand(mySQL, myCONN);

            // Thực hiện câu truy vấn
            cmd.ExecuteReader();

            // Đóng kết nối CSDL
            myCONN.Close();
        }
        // Chức năng Phục Hồi Danh Sách
        public void PhucHoiThemLoaiMonVoiIDTung(LoaiMonAnDTO loaiMon)
        {
            // Tạo Kết Nối CSDL
            SqlConnection myCONN = DataProvider.ConnectDB();

            //Viết Câu Lệnh SQL
            string mySQL = "SET IDENTITY_INSERT LOAIMONAN ON INSERT INTO LOAIMONAN(Id_Loai_Mon_An,Ten_Loai_Mon_An) VALUES(@IDLoaiMon,@TenLoaiMon)";

            // Thực hiện truy vấn
            SqlCommand cmd = new SqlCommand(mySQL, myCONN);
            SqlParameter para;
            // Add Id_Khu_Vuc
            para = cmd.Parameters.Add("@IDLoaiMon", System.Data.SqlDbType.Int);
            para.Value = loaiMon.Id_Loai;
            // Add Ten_Khu_Vuc
            para = cmd.Parameters.Add("@TenLoaiMon", System.Data.SqlDbType.NVarChar);
            para.Value = loaiMon.Ten_Mon_An;
            // Thực hiện câu truy vấn
            cmd.ExecuteReader();

            // Đóng kết nối CSDL
            myCONN.Close();
        }
        public int ThemLoaiMonAn(LoaiMonAnDTO lmaDTO)
        {
            SqlConnection myCONN = DataProvider.ConnectDB();
            string mySQL = "INSERT INTO LOAIMONAN(Ten_Loai_Mon_An) VALUES (@Ten_Loai_Mon_An)";
            SqlCommand cmd = new SqlCommand(mySQL, myCONN);

            SqlParameter para = cmd.Parameters.Add("@Ten_Loai_Mon_An", System.Data.SqlDbType.NVarChar, -1);
            para.Value = lmaDTO.Ten_Mon_An;
            int kq;
            try
            {
                kq = cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                return 0;
            }
            myCONN.Close();
            return 1;
        }
        // Xóa Loại Món Ăn
        public void XoaLoaiMonAn(int Id_Loai_Mon_An)
        {
            // Tạo Kết Nối CSDL
            SqlConnection myCONN = DataProvider.ConnectDB();

            //Viết Câu Lệnh SQL
            string mySQL = "DELETE FROM LOAIMONAN WHERE Id_Loai_Mon_An = @Id_Loai_Mon_An ";

            // Thực hiện truy vấn
            SqlCommand cmd = new SqlCommand(mySQL, myCONN);
            SqlParameter para = cmd.Parameters.Add("@Id_Loai_Mon_An", System.Data.SqlDbType.Int, -1);
            para.Value = Id_Loai_Mon_An;

            cmd.ExecuteReader();


        }
    }
}
